Repository navigation
Conversation
d746c60 to
fc217f5
Compare
fc217f5 to
f580f84
Compare
ogajduse
left a comment
There was a problem hiding this comment.
Thanks for the substantial work here. Before going further on code, I'd like to settle scope and rollout, because as it stands this breaks satellite-packaging on merge: build_package_releaser defaults to rhpkg for any bare build_package_build_system: koji inventory, rel-eng/releasers.conf is no longer read, and obal setup tries to install rhpkg, which is not in Fedora/EPEL/CentOS. Jenkins runs obal from unpinned master, so there is no staged rollout.
Proposal: split this into (a) the rhpkg releaser behind an explicit build_package_releaser: rhpkg opt-in, with tito untouched; (b) tag reconciliation for existing builds (#424's scope); (c) tito and setup_sources_git removal as a separate major-version change once (a) has done a real Brew release; (d) the annex --anything change with a second-clone test. That matches the "just the obal release workflow" scope pcreech described on #380.
Verified defects to fix in whichever part they land in:
koji_verify_tag.py:69catchesCalledProcessError, butkoji()raisesKojiCommandError, so a brew failure crashes the module instead offail_json.tests/fixtures/rhpkg/mock_client.py:69:cpio -i --to-stdout payload.txtextracts nothing when the member is./payload.txt(rpm 6 here), so the annex-bytes test compares againstsha256(''). It fails on Fedora 43 and is a no-op where it passes.rhpkg.py: the "already been built" recovery can't trigger with--skip-nvr-checkalways set; the "Unknown build target" check is unreachable because realkoji list-targets --nameexits 2; a cancelled scratch task with unchanged inputs deadlocksresume().docs/source/actions.rststill documents the tito variables;rhpkg_targetsandbuild_package_releaserare undocumented.
Also please reply to and resolve zjhuntin's two threads; the amend fixed both, but the PR reads as unaddressed.
Preserve Tito and legacy source workflows for a staged rollout. Fix Koji error handling, target diagnostics, concurrent build recovery, scratch retries, and SRPM payload extraction. Document rhpkg configuration and restore legacy regression coverage. Validation: 226 Python and flakes checks passed; pylint 10.00/10; Ansible lint passed; extraction verified with a real RPM 6 SRPM.
|
@ogajduse Addressed in 3c4a5ec. I adopted the staged rollout scope:
The verified defects are fixed:
Validation: 226 Python/flake checks passed on Python 3.12 / CentOS Stream 10 as an unprivileged user; pylint is 10.00/10; changed Ansible playbooks and their includes passed ansible-lint (custom-module import warnings were emitted); I also replied to and resolved @zjhuntin's two inline threads, and updated the PR title and description to match the revised scope. |
Summary
Add a Brew/dist-git release workflow behind an explicit
build_package_releaser: rhpkgopt-in. Existing Tito inventories,rel-eng/releasers.conf, custom builders, nightly settings, andsetup_sources_gitcontinue to work. Direct Koji and COPR workflows retain their existing behavior.rhpkg_targets.obal setupretains its existing Tito dependencies.Rollout
Rhpkg is enabled only by the explicit selector. Defining targets alone does not change the backend.
build_package_use_koji_build: truecontinues to select direct Koji submission unless a releaser is explicitly configured.Tito removal, broader direct Koji tagging changes, and the annex
--anythinglookup are deferred to separate changes. Tito andsetup_sources_gitremoval should follow a real Brew release and a separately planned major-version migration.Review fixes
Return structured module errors for Koji tag-verification query failures, extract actual SRPM source bytes on RPM 4 and RPM 6, handle Koji's status-2 unknown-target response, recover concurrent builds by querying their state after submission failure, and check saved scratch task states before resuming.
Validation
git diff --checkpassed.No live Brew release or remote dist-git submission was performed.